Virtualized computing environments are frequently supported by storage systems, such as block-based storage. Such storage is increasingly provided by solid state drives (SSDs). SSDs provide a block-style interface, making it easy to integrate these drives into systems that have traditionally relied on hard drives and other block storage devices. SSD drive manufacturers incorporate a controller which provides the block-style interface and which manages data storage and mapping. For example when a read or write request is received, it may include a logical block address associated with the request. The controller may determine a physical location on the SSD from where the data should be read, or to where the data should be written. The controller may also manage data storage on the SSD to improve the longevity of the device and manage other flash-specific functions. However, while the drive manufacturer may provide a controller that is suitable for the average customer, such controllers may not provide sufficient flexibility or customizability for all users and applications for which such drives may be deployed.